home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / parallax / mac_sit.hqx / Parallaxis 2.11 / find.z < prev    next >
Text File  |  1992-01-09  |  3KB  |  100 lines

  1. START
  2. 9 PE
  3. 4 PORTS
  4. SCALAR     I1 I1
  5. VECTOR     I2 I2 B1
  6.     1  :    GOTO 20;
  7.     2  :    PROC 1 VECTOR I1;
  8.         POPV VI1:1;
  9.         VI[VI1:1] := 0;
  10.         PUSHV VI1:1;
  11.         RETURN;
  12.     3  :    PROC 1
  13.         SCALAR    
  14.         VECTOR     I3 I1; group number 1
  15.         PUSHV ADDR VI1:3;
  16.     4  :    VI1:1 := ID - 1; for FIELD calculating DIMi
  17.         VI1:2 := VI1:1 MOD 3;      DIM2
  18.         VI1:1 := VI1:1 / 3;      DIM1
  19.     5  :    VI1:3 := VI1:1 * 3;
  20.     6  :    VI1:4 := VI1:2 + 1;
  21.     7  :    VI1:3 := VI1:3 + VI1:4;
  22.         VI1:3 := VI1:3 + 1;
  23.         IF VI1:1 < 0 CALL 2;
  24.         IF VI1:1 > 2 CALL 2;
  25.         IF VI1:4 < 0 CALL 2;
  26.         IF VI1:4 > 2 CALL 2;
  27.         CONNECT 1 TO 2 AT VI1:3;
  28.     8  :    VI1:3 := VI1:1 * 3;
  29.     9  :    VI1:4 := VI1:2 - 1;
  30.    10  :    VI1:3 := VI1:3 + VI1:4;
  31.         VI1:3 := VI1:3 + 1;
  32.         IF VI1:1 < 0 CALL 2;
  33.         IF VI1:1 > 2 CALL 2;
  34.         IF VI1:4 < 0 CALL 2;
  35.         IF VI1:4 > 2 CALL 2;
  36.         CONNECT 2 TO 1 AT VI1:3;
  37.    11  :    VI1:4 := VI1:1 + 1;
  38.    12  :    VI1:3 := VI1:4 * 3;
  39.    13  :    VI1:3 := VI1:3 + VI1:2;
  40.         VI1:3 := VI1:3 + 1;
  41.         IF VI1:4 < 0 CALL 2;
  42.         IF VI1:4 > 2 CALL 2;
  43.         IF VI1:2 < 0 CALL 2;
  44.         IF VI1:2 > 2 CALL 2;
  45.         CONNECT 3 TO 4 AT VI1:3;
  46.    14  :    VI1:4 := VI1:1 - 1;
  47.    15  :    VI1:3 := VI1:4 * 3;
  48.    16  :    VI1:3 := VI1:3 + VI1:2;
  49.         VI1:3 := VI1:3 + 1;
  50.         IF VI1:4 < 0 CALL 2;
  51.         IF VI1:4 > 2 CALL 2;
  52.         IF VI1:2 < 0 CALL 2;
  53.         IF VI1:2 > 2 CALL 2;
  54.         CONNECT 4 TO 3 AT VI1:3;
  55.    17  :    POPV VI1:3;
  56.    18  :    RETURN;    group number : 1
  57.    19  :    PROC 1;    configuration : FIELD
  58.         VI0:1 := ID - 1; for FIELD calculating DIMi
  59.         VI0:2 := VI0:1 MOD 3;      DIM2
  60.         VI0:1 := VI0:1 / 3;      DIM1
  61.         RETURN;    configuration : FIELD
  62.    20  :    CALL 3;    connections
  63.    21!14  :    CALL 19; line 14 column 2 
  64.    22!15  :    VI0:3 := ID; line 15 column 4 
  65.    23!18  :    SI0:1 := 1; line 18 column 2 
  66.    24  :    SI0:2 := 2;
  67.    25!18  :    IF SI0:1 > SI0:2 GOTO 37; line 18 column 2 
  68.    26!19  :    CALL 19; line 19 column 4 
  69.    27!20  :    VI0:4 := VI0:3; line 20 column 7 
  70.    28!21  :    PROPAGATE VI0:4 OUT 2 IN 1; line 21 column 7 
  71.    29!22  :    VB0:1 := VI0:4 > VI0:3; line 22 column 7 
  72.    30  :    IF VB0:1 CALL 32;
  73.    31  :    GOTO 35;
  74.    32  :    PROC 1;
  75.    33!22  :    VI0:3 := VI0:4; line 22 column 30 
  76.    34  :    RETURN;
  77.    35  :    SI0:1 := SI0:1 + 1;
  78.    36  :    GOTO 25;
  79.    37!26  :    SI0:1 := 1; line 26 column 2 
  80.    38  :    SI0:2 := 2;
  81.    39!26  :    IF SI0:1 > SI0:2 GOTO 51; line 26 column 2 
  82.    40!27  :    CALL 19; line 27 column 4 
  83.    41!28  :    VI0:4 := VI0:3; line 28 column 7 
  84.    42!29  :    PROPAGATE VI0:4 OUT 4 IN 3; line 29 column 7 
  85.    43!30  :    VB0:1 := VI0:4 > VI0:3; line 30 column 7 
  86.    44  :    IF VB0:1 CALL 46;
  87.    45  :    GOTO 49;
  88.    46  :    PROC 1;
  89.    47!30  :    VI0:3 := VI0:4; line 30 column 30 
  90.    48  :    RETURN;
  91.    49  :    SI0:1 := SI0:1 + 1;
  92.    50  :    GOTO 39;
  93.    51!34  :    CALL 19; line 34 column 2 
  94.    52  :    PARALLEL    100000000;
  95.    53  :    STORE VI0:3 TO SI0:1;
  96.    54  :    PARALLEL    111111111;
  97.    55!35  :    WRITE SI0:1 10; line 35 column 2 
  98.    56  :    END;    FINDMAX
  99. STOP
  100.